home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Developer Essentials / MPW Interfaces & Libraries / AIncludes / DatabaseAccess.a < prev    next >
Encoding:
Text File  |  1992-01-29  |  6.2 KB  |  300 lines  |  [TEXT/MPS ]

  1. ; Created: Monday, March 20, 1989 at 10:00:00 AM
  2. ;
  3. ; File: DatabaseAccess.a
  4. ;
  5. ; Assembler Interface to the Macintosh Libraries
  6. ; Copyright Apple Computer, Inc. 1989-1991
  7. ; All Rights Reserved
  8. ;
  9. ;___________________________________________________________________________
  10.  
  11.     IF &TYPE('__IncludingDatabaseAccess__') = 'UNDEFINED' THEN
  12. __IncludingDatabaseAccess__    SET    1
  13.  
  14.     IF &TYPE('__IncludingTraps__') = 'UNDEFINED' THEN
  15.     INCLUDE 'Traps.a'
  16.     ENDIF
  17.  
  18. ; error and status codes
  19.  
  20. rcDBNull          EQU         -800
  21. rcDBValue         EQU         -801
  22. rcDBError         EQU         -802
  23. rcDBBadType       EQU         -803
  24. rcDBBreak         EQU         -804
  25. rcDBExec          EQU         -805
  26. rcDBBadSessID     EQU         -806
  27. rcDBBadSessNum    EQU         -807
  28.  
  29. rcDBBadDDEV       EQU         -808
  30.  
  31. rcDBAsyncNotSupp  EQU         -809
  32. rcDBBadAsyncPB    EQU         -810
  33.  
  34. rcDBNoHandler     EQU         -811
  35.  
  36. rcDBWrongVersion  EQU         -812
  37. rcDBPackNotInited EQU         -813
  38.  
  39. ; messages for status functions for DBStartQuery
  40.  
  41. kDBUpdateWind     EQU         0
  42. kDBAboutToInit    EQU         1
  43. kDBInitComplete   EQU         2
  44. kDBSendComplete   EQU         3
  45. kDBExecComplete   EQU         4
  46. kDBStartQueryComplete EQU    5
  47.  
  48. ; messages for status functions for DBGetQueryResults
  49.  
  50. kDBGetItemComplete EQU        6
  51. kDBGetQueryResultsComplete EQU    7
  52.  
  53. ; DBType codes
  54.  
  55. typeNone          EQU         'none'
  56. typeBoolean       EQU         'bool'
  57. typeSMInt         EQU         'shor'
  58. typeInteger       EQU         'long'
  59. typeSMFloat       EQU         'sing'
  60. typeFloat         EQU         'doub'
  61. typeDate          EQU         'date'
  62. typeTime          EQU         'time'
  63. typeTimeStamp     EQU         'tims'
  64. typeChar          EQU         'TEXT'
  65. typeDecimal       EQU         'deci'
  66. typeMoney         EQU         'mone'
  67. typeVChar         EQU         'vcha'
  68. typeVBin          EQU         'vbin'
  69. typeLChar         EQU         'lcha'
  70. typeLBin          EQU         'lbin'
  71. typeDiscard       EQU         'disc'
  72.  
  73. ; "dummy" types for DBResultsToText
  74.  
  75. typeUnknown       EQU         'unkn'
  76. typeColBreak      EQU         'colb'
  77. typeRowBreak      EQU         'rowb'
  78.  
  79. ; pass this in to DBGetItem for any data type
  80.  
  81. typeAnyType       EQU         0
  82.  
  83. ; infinite timeout value for DBGetItem
  84.  
  85. kDBWaitForever    EQU         -1
  86.  
  87. ; flags for DBGetItem
  88.  
  89. kDBLastColFlag    EQU         1
  90. kDBNullFlag        EQU         4
  91.  
  92. ; structure for asynchronous parameter block
  93.  
  94. DBAsyncParamBlockRec RECORD   0
  95. completionProc    DS.L        1                         ; pointer to completion routine
  96. result            DS.W        1                         ; result of call
  97. userRef           DS.L        1                         ; for application's use
  98. ddevRef           DS.L        1                         ; for ddev's use
  99. reserved          DS.L        1                         ; for internal use
  100. DBAsyncParmBlkSize EQU        *
  101.                   ENDR
  102.  
  103. ; structure for resource list in QueryRecord
  104.  
  105. ResListElem       RECORD      0
  106. theType           DS.L        1
  107. id                DS.W        1
  108. ResListElemSize   EQU         *
  109.                   ENDR
  110.  
  111. QueryRecord       RECORD      0
  112. version           DS.W        1                         ; version
  113. id                DS.W        1                         ; id of 'qrsc' this came from
  114. queryProc         DS.L        1                         ; handle to query def proc
  115. ddevName          DS.B        64                        ; ddev name
  116. host              DS.B        256                       ; host
  117. user              DS.B        256                       ; user
  118. password          DS.B        256                       ; password
  119. connStr           DS.B        256                       ; other connection info
  120. currQuery         DS.W        1                         ; current query
  121. numQueries        DS.W        1                         ; number of queries in queryList
  122. queryList         DS.L        1                         ; handle to list of queries
  123. numRes            DS.W        1                         ; number of resources in resList
  124. resList           DS.L        1                         ; handle to list of other resources
  125. dataHandle        DS.L        1                         ; data used by query def proc
  126. refCon            DS.L        1                         ; query's reference value
  127. QueryRecordSize   EQU         *
  128.                   ENDR
  129.  
  130. DBColInfoRecord RECORD      0
  131. len                   DS.W        1
  132. places           DS.W        1
  133. flags           DS.W        1
  134. DBColInfoRecordSize EQU     *
  135.                   ENDR
  136.  
  137. ResultsRecord     RECORD      0
  138. numRows           DS.W        1                         ; number of rows in result
  139. numCols           DS.W        1                         ; number of columns per row
  140. colTypes          DS.L        1                         ; data type array
  141. colData           DS.L        1                         ; actual results
  142. colInfo           DS.L        1                         ; DBColInfoRecord array
  143. ResultsRecordSize EQU         *
  144.                   ENDR
  145.  
  146. ;
  147. ; Routine Selectors
  148. ;
  149.  
  150. InitDBPack        EQU         $0100
  151. DBInit            EQU         $0E02
  152. DBEnd             EQU         $0403
  153. DBGetConnInfo     EQU         $1704
  154. DBGetSessionNum   EQU         $0605
  155. DBSend            EQU         $0706
  156. DBSendItem        EQU         $0B07
  157. DBExec            EQU         $0408
  158. DBState           EQU         $0409
  159. DBGetErr          EQU         $0E0A
  160. DBBreak           EQU         $050B
  161. DBGetItem         EQU         $100C
  162. DBUnGetItem       EQU         $040D
  163. DBKill            EQU         $020E
  164. DBGetNewQuery     EQU         $030F
  165. DBDisposeQuery    EQU         $0210
  166. DBStartQuery      EQU         $0811
  167. DBGetQueryResults EQU         $0A12
  168. DBResultsToText   EQU         $0413
  169. DBInstallResultHandler EQU   $0514
  170. DBRemoveResultHandler EQU    $0215
  171. DBGetResultHandler EQU       $0516
  172.  
  173. ;
  174. ; For package invocation
  175. ; First arg is routine selector, second is the trap
  176. ; Slightly modified from PackMacs.a to pass selector in D0,
  177. ; and always call Pack13.
  178. ;
  179.  
  180.                   MACRO
  181.                   _Pack13Call
  182.                   MOVE.W      &SYSLIST[1],D0
  183.                   _Pack13
  184.                   ENDM
  185.  
  186. ;
  187. ; Database Access Manager routines
  188. ;
  189.                   MACRO
  190.                   _InitDBPack
  191.                   MOVE.W      #$0004, -(A7)             ; push version number
  192.                   _Pack13Call #InitDBPack
  193.                   ENDM
  194.  
  195.                   MACRO
  196.                   _DBInit
  197.                   _Pack13Call #DBInit
  198.                   ENDM
  199.  
  200.                   MACRO
  201.                   _DBEnd
  202.                   _Pack13Call #DBEnd
  203.                   ENDM
  204.  
  205.                   MACRO
  206.                   _DBGetConnInfo
  207.                   _Pack13Call #DBGetConnInfo
  208.                   ENDM
  209.  
  210.                   MACRO
  211.                   _DBGetSessionNum
  212.                   _Pack13Call #DBGetSessionNum
  213.                   ENDM
  214.  
  215.                   MACRO
  216.                   _DBSend
  217.                   _Pack13Call #DBSend
  218.                   ENDM
  219.  
  220.                   MACRO
  221.                   _DBSendItem
  222.                   _Pack13Call #DBSendItem
  223.                   ENDM
  224.  
  225.                   MACRO
  226.                   _DBExec
  227.                   _Pack13Call #DBExec
  228.                   ENDM
  229.  
  230.                   MACRO
  231.                   _DBState
  232.                   _Pack13Call #DBState
  233.                   ENDM
  234.  
  235.                   MACRO
  236.                   _DBGetErr
  237.                   _Pack13Call #DBGetErr
  238.                   ENDM
  239.  
  240.                   MACRO
  241.                   _DBBreak
  242.                   _Pack13Call #DBBreak
  243.                   ENDM
  244.  
  245.                   MACRO
  246.                   _DBGetItem
  247.                   _Pack13Call #DBGetItem
  248.                   ENDM
  249.  
  250.                   MACRO
  251.                   _DBUnGetItem
  252.                   _Pack13Call #DBUnGetItem
  253.                   ENDM
  254.  
  255.                   MACRO
  256.                   _DBKill
  257.                   _Pack13Call #DBKill
  258.                   ENDM
  259.  
  260.                   MACRO
  261.                   _DBGetNewQuery
  262.                   _Pack13Call #DBGetNewQuery
  263.                   ENDM
  264.  
  265.                   MACRO
  266.                   _DBDisposeQuery
  267.                   _Pack13Call #DBDisposeQuery
  268.                   ENDM
  269.  
  270.                   MACRO
  271.                   _DBStartQuery
  272.                   _Pack13Call #DBStartQuery
  273.                   ENDM
  274.  
  275.                   MACRO
  276.                   _DBGetQueryResults
  277.                   _Pack13Call #DBGetQueryResults
  278.                   ENDM
  279.  
  280.                   MACRO
  281.                   _DBResultsToText
  282.                   _Pack13Call #DBResultsToText
  283.                   ENDM
  284.  
  285.                   MACRO
  286.                   _DBInstallResultHandler
  287.                   _Pack13Call #DBInstallResultHandler
  288.                   ENDM
  289.  
  290.                   MACRO
  291.                   _DBRemoveResultHandler
  292.                   _Pack13Call #DBRemoveResultHandler
  293.                   ENDM
  294.  
  295.                   MACRO
  296.                   _DBGetResultHandler
  297.                   _Pack13Call #DBGetResultHandler
  298.                   ENDM
  299.  
  300.     ENDIF    ; ...already included